以下の処理でidも返す必要が有りますかね?レスポンスのデータが問題だと思うので、ブラウザの開発者ツールとか、ログに出してみるとかして確認してみてください。
存在しないキー(id)を参照してるので、undefinedになっているかと、、、
$products = $products->map(function ($product) {
return [
'product_name' => $product->product_name ?? '',
'company_name' => $product->company->company_name ?? '',
'price' => $product->price ?? '',
'stock' => $product->stock ?? '',
'comment' => $product->comment ?? '',
'img_path' => asset($product->img_path) ?? '',
];
});